package Attributes;

import java.util.Observable;

public abstract class Attribute extends Observable {
        
    /*
     * clase Attribute
     *
     * 
     * Clase descriptiva. Almacena nombre, valor y factor.
     * 
     * Es observable, acordarse de notificar a sus observadores
     * luego de cambiar algun valor importante.
     * 
     * El metodo toString() facilita la integracion con la GUI.
     * 
     * IMPORTANTE: el metodo getValue ya tiene en cuenta el factor
     *              (Esto es asi para poder hacer atributos
     *               que lo calculen de manera particular)
     * 
     */
    public abstract double getValue();

    public abstract double getFactor();

    public abstract String getName();

    public abstract void setValue(double value);

    public abstract void setFactor(double factor);

    public abstract void setUmbral(double umbral, int flag);

    public abstract void setName(String name);

    public abstract boolean isExcluyente();

    @Override
    public abstract String toString();
    
}
